/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package androidutal;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author blackmoon
 */
public class Datos {
    
    ArrayList<String> profesores;
    ArrayList<String> arrSalas;
    private String profe[];
    private String curso[];
    private String sala[];
    ArrayList<String> cursos;
    private String sCadena;

    public Datos() throws FileNotFoundException, IOException {
        this.profe= new String[0];
        this.curso= new String[0];
        this.sala= new String[0];
        this.profesores =new  ArrayList<String>();
        this.cursos = new ArrayList<String>();
        this.arrSalas = new ArrayList<String>();
        this.cargarProfesores();
        this.cargarCursos();
        this.cargarSalas();
        
    }

    private void cargarProfesores() throws FileNotFoundException, IOException {
        FileReader fr = new FileReader("src/profesores.txt");
        BufferedReader bf = new BufferedReader(fr);
        while ((sCadena = bf.readLine())!=null) {
            profesores.add(sCadena);
            addProfesor(sCadena.trim());
        }
        
    }

    private void cargarCursos() throws FileNotFoundException, IOException {
        FileReader fr = new FileReader("src/cursos.txt");
        BufferedReader bf = new BufferedReader(fr);
        while ((sCadena = bf.readLine())!=null) {
            cursos.add(sCadena);
            addCurso(sCadena.trim());
            
        }
    }
    private void cargarSalas() throws FileNotFoundException, IOException {
        FileReader fr = new FileReader("src/salas.txt");
        BufferedReader bf = new BufferedReader(fr);
        while ((sCadena = bf.readLine())!=null) {
            arrSalas.add(sCadena);
            addSala(sCadena.trim());
            
        }
    }
    
    private void addProfesor(String cadena)
    {
        String temp[]= new String[profe.length+1];
        System.arraycopy(profe, 0, temp, 0, profe.length);
        temp[profe.length]=cadena;
        profe=new String[profe.length+1];
        System.arraycopy(temp, 0, profe, 0, profe.length);
        
    }
    private void addCurso(String cadena)
    {
        String temp[]= new String[curso.length+1];
        System.arraycopy(curso, 0, temp, 0, curso.length);
        temp[curso.length]=cadena;
        curso=new String[curso.length+1];
        System.arraycopy(temp, 0, curso, 0, curso.length);
        
    }
    private void addSala(String cadena)
    {
        String temp[]= new String[sala.length+1];
        System.arraycopy(sala, 0, temp, 0, sala.length);
        temp[sala.length]=cadena;
        sala=new String[sala.length+1];
        System.arraycopy(temp, 0, sala, 0, sala.length);
        
    }
  
    
    
    
    public String[] listaDeProfesores(){
        String[] listaprofes= new String[profesores.size()];
        return  profesores.toArray(listaprofes);
    }
    
    public String[] ListaDeCursos(){
        String[] listaCursos= new String[cursos.size()];
        return  profesores.toArray(curso);
    }
    public String[] ListaDeSalas(){
        String[] listaSalas= new String[arrSalas.size()];
        return  arrSalas.toArray(sala);
    }

    public String[] getProfe() {
        return profe;
    }

    public void setProfe(String[] profe) {
        this.profe = profe;
    }

    public String[] getCurso() {
        return curso;
    }

    public void setCurso(String[] curso) {
        this.curso = curso;
    }
    
    public String[] getSala() {
        return sala;
    }

    public void setSala(String[] sala) {
        this.sala = sala;
    }
    
    
     public boolean existeprofesor(String nombre){
         if(profesores.contains(nombre)){
            return true;
         }
         return false;
     }       

     public boolean existeCurso(String nombre){
         if(cursos.contains(nombre)){
            return true;
         }
         return false;
     }
     public boolean existeSala(String nombre){
         if(arrSalas.contains(nombre)){
            return true;
         }
         return false;
     }
     
     
     public void eliminarProfe(String profesor){
         if(this.existeprofesor(profesor)){
             profesores.remove(profesores.indexOf(profesor));
         }
         
     }
     
     public void eliminarCurso(String Curso){
         if(this.existeCurso(Curso)){
             cursos.remove(cursos.indexOf(Curso));
         }
    
    
     }
      public void eliminarSala(String sala){
         if(this.existeSala(sala)){
             arrSalas.remove(arrSalas.indexOf(sala));
         }
         
     }
     
     public void recardarDatosEliminacionProfes() throws FileNotFoundException, IOException{
            try {
               
                FileWriter fichero = new FileWriter("src/profesores.txt");
                PrintWriter escribir = new PrintWriter(fichero);
                for(String profesor : profesores){
                    escribir.print(profesor);
                    escribir.println();
                }             
                fichero.close();
            } catch (IOException ex) {
                Logger.getLogger(JPanelConfiguracion.class.getName()).log(Level.SEVERE, null, ex);
            }
    
           
         
     
     }
    
     public void agregarProfe(String profesor){
          if(!profesores.contains(profesor)){
             profesores.add(profesor);
         }
        
     }
     
     public void imprimirProfesores(){
         for(String profe : profesores){
              System.out.println(profe);
         }
     }
    
     
     public void recardarDatosEliminacionCursos() throws FileNotFoundException, IOException{
            try {
               
                FileWriter fichero = new FileWriter("src/cursos.txt");
                PrintWriter escribir = new PrintWriter(fichero);
                for(String ramo : cursos){
                    escribir.print(ramo);
                    escribir.println();
                }             
                fichero.close();
            } catch (IOException ex) {
                Logger.getLogger(JPanelConfiguracion.class.getName()).log(Level.SEVERE, null, ex);
            }
     
     }

    void agregarCurso(String text) {
        if(!cursos.contains(text)){
             cursos.add(text);
         }
        
    }
    
    public void recardarDatosEliminacionSalas() throws FileNotFoundException, IOException{
            try {
               
                FileWriter fichero = new FileWriter("src/salas.txt");
                PrintWriter escribir = new PrintWriter(fichero);
                for(String ramo : arrSalas){
                    escribir.print(ramo);
                    escribir.println();
                }             
                fichero.close();
            } catch (IOException ex) {
                Logger.getLogger(JPanelConfiguracion.class.getName()).log(Level.SEVERE, null, ex);
            }
     }
    
    void agregarSala(String text) {
        if(!arrSalas.contains(text)){
             arrSalas.add(text);
         }
    }
    
}
